//
//  ViewController.swift
//  新浪来源处理
//
//  Created by 雷路荣 on 16/1/3.
//  Copyright © 2016年 leilurong. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let source = "<a href=\"http://app.weibo.com/t/feed/44rbus\" rel=\"nofollow\">搞笑达人火星</a>  <"
        let source2 = "<a href=\"http://app.weibo.com/t/feed/44rbus\" rel=\"nofollow\">iPhone</a>"
        let source3 = "<a href=\"http://app.weibo.com/t/feed/44rbus\" rel=\"nofollow\">火星</a>"
        print("\(source.source())---\(source2.source())---\(source3.source())")
    }
    
    func test() {
        let source = "<a href=\"http://app.weibo.com/t/feed/44rbus\" rel=\"nofollow\">搞笑达人火星</a>  <"
        let source2 = "<a href=\"http://app.weibo.com/t/feed/44rbus\" rel=\"nofollow\">iPhone</a>"
        let source3 = "<a href=\"http://app.weibo.com/t/feed/44rbus\" rel=\"nofollow\">火星</a>"
        
        // 正则表达式:从复杂的文本中按一定的规则找出需要的内容.正则表达式就是描述这个规则语句
        
        /*
        pattern: 正则表达式的规则
        . : 匹配任意字符
        * : 匹配任意长度
        ? : 尽可能少的匹配
        (): 表示捕获()里面的内容作为结果返回
        options: NSRegularExpressionOptions
        DotMatchesLineSeparators: 正则表达式匹配 . 默认不匹配换行的,DotMatchesLineSeparators表示 . 也可以匹配换行
        
        firstMatchInString: 匹配第一个合适的条件
        */
        
        let regular = try! NSRegularExpression(pattern: ">(.*?)<", options: NSRegularExpressionOptions.DotMatchesLineSeparators)
        
        /*
        string: 从哪个String里面查找
        options
        range: 查找字符串的范围
        NSTextCheckingResult
        var numberOfRanges: Int { get } // 获取到几个匹配范围
        func rangeAtIndex(idx: Int) -> NSRange  // 通过idx来获取范围
        */
        
        let result = regular.firstMatchInString(source, options: NSMatchingOptions(rawValue: 0), range: NSRange(location: 0, length: source.characters.count))
        
        // 获取匹配到的范围,来截取字符串
        //        let number = result?.numberOfRanges ?? 0
        
        // for循环获取匹配的结果
        //        for i in 0..<number {
        //            // 获取到对应的范围
        //            let range = result!.rangeAtIndex(i)
        //
        //            // 截取字符串
        //            let re = (source as NSString).substringWithRange(range)
        //            print("匹配到的内容: \(re)")
        //        }
        // 直接获取捕获的内容
        
        if result?.numberOfRanges > 1 {
            let range = result!.rangeAtIndex(1)
            // 截取字符串
            let re = (source as NSString).substringWithRange(range)
            print("匹配到的内容: \(re)")
        }
    }


}

